1. Field of the Invention
The present invention relates generally to data processing, and more particularly to a computer implemented method, system, and computer usable program code for providing multiple concurrent versions of shared artifact libraries in a continuously available environment.
2. Description of the Related Art
Reliance on software has grown exponentially in recent years because of the increasing use of computing devices in every aspect of business and society. Users have come to rely on software applications and need software with all of the associated libraries, databases, and linked programs and files to be properly maintained and updated.
Updating systems in the on-demand computing era is increasingly difficult because businesses and individuals want changes and updates made with minimum or zero downtime and without compromising data integrity. Scheduling and performing updates is both costly and time consuming. Composite applications upgrades may cost money in terms of personnel and in terms of lost profits. For example, business integration servers and composite applications are at the hub of an enterprise's back-end information systems and need to have the minimum downtimes possible for effective information flow. Servers and composite applications store large quantities of information in the form of libraries and databases.
Performing library updates is especially complicated because of the interactions of multiple composite applications. A composite application as defined herein is an application created by loosely coupling several different services and data stores via standardized message layers. The component parts of some composite applications may be mixed and matched allowing developers to create a wide variety of applications with a relatively small set of services. Updating composite applications is difficult because the applications may consume artifacts that reside in shared artifact libraries, since any update to a library, although desired by one composite application, may adversely affect another application.
Updates are further complicated because some composite applications may have long-lived business process sessions that cannot be updated until the process session has fully and finally ended. As a result, scheduled or unscheduled downtime for updates become necessary and consuming business applications may not be continuously available.